# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Jason Chu <jchu@xentac.net>

pkgbase=openal
pkgname=(openal openal-examples)
pkgver=1.19.0
pkgrel=2
pkgdesc="Cross-platform 3D audio library, software implementation"
arch=(x86_64)
url="https://github.com/kcat/openal-soft"
license=(LGPL)
depends=(glibc)
makedepends=(alsa-lib libpulse fluidsynth portaudio jack qt5-base sdl2 sdl_sound ffmpeg
             git cmake ninja)
_commit=96aacac10ca852fc30fd7f72f3e3c6ddbe02858c  # tags/openal-soft-1.19.0
source=("git+https://github.com/kcat/openal-soft#commit=$_commit")
sha512sums=('SKIP')

pkgver() {
  cd openal-soft
  git describe --tags | sed 's/^openal-soft-//;s/-/+/g'
}

prepare() {
  mkdir build examples
  cd openal-soft
  git cherry-pick -n 8bacb5dfb8ef910586fcf5b5cd89526ec81061e8
}

build() {
  cd build
  cmake ../openal-soft -G Ninja \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_LIBDIR=lib
  ninja
}

package_openal() {
  optdepends=('qt5-base: alsoft-config GUI Configurator'
              'fluidsynth: MIDI rendering')

  DESTDIR="$pkgdir" ninja -C build install
  install -Dt "$pkgdir/usr/share/doc/openal" -m644 openal-soft/docs/*

### Split openal-examples
  cd "$pkgdir/usr/bin"
  mv -vt "$srcdir/examples" alffplay alhrtf allatency alloopback almultireverb \
    alplay alrecord alreverb alstream altonegen
}

package_openal-examples() {
  pkgdesc+=" (example programs)"
  depends=("openal=$pkgver-$pkgrel" sdl2 sdl_sound ffmpeg)

  mkdir "$pkgdir/usr"
  mv -v examples "$pkgdir/usr/bin"
}
